Many of today's computer applications are capable of performing certain tasks in response to events (e.g., receiving user input or receiving input from another device). Certain types of computer applications can be implemented by remote service providers and can be used by multiple clients from different locations. For example, a remote service provider may offer an “event-driven” service that a client may use to configure an application or a particular function to run at the remote service provider whenever a particular event occurs. For example, a particular function may execute whenever the application receives information from a web page that was filled out by a user, and another function may execute whenever a new row is added to a particular database table maintained by the service provider.
When a function begins execution, the function may need to execute for a certain amount of time (e.g., startup time) before the function arrives at an initialized state to begin processing input or begin performing other tasks. For example, if a particular function is launched (e.g., begins execution) by a computer in response to input data that is received from a website, then the computer may need to spend a certain amount of startup time to perform certain operations or tasks that prepare the execution environment for the function (e.g., allocating memory, loading supporting libraries, etc.) before the function can begin to process the input data. If functions are launched numerous times within a relatively short time period, then significant delays may result and application performance may suffer. For example, a surge in website use for a particular application may reduce the performance and the response time as the application incurs additional delays when launching functions to process a surge in input data.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.